wayland: Always initialize directions
authorMatthias Clasen <mclasen@redhat.com>
Fri, 5 Apr 2013 01:10:18 +0000 (21:10 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 5 Apr 2013 01:14:53 +0000 (21:14 -0400)
I forgot to initialize directionm in gdk_wayland_keymap_new,
leading to crash.

gdk/wayland/gdkkeys-wayland.c

index 83d94e9be577044421248b41446b97c214af8341..f58d1b3e356e280f40325d69bacf6fe7e3cb94f9 100644 (file)
@@ -225,29 +225,6 @@ _gdk_wayland_keymap_init (GdkWaylandKeymap *keymap)
 {
 }
 
-GdkKeymap *
-_gdk_wayland_keymap_new ()
-{
-  GdkWaylandKeymap *keymap;
-  struct xkb_context *context;
-  struct xkb_rule_names names;
-
-  keymap = g_object_new (_gdk_wayland_keymap_get_type(), NULL);
-
-  context = xkb_context_new (0);
-
-  names.rules = "evdev";
-  names.model = "pc105";
-  names.layout = "us";
-  names.variant = "";
-  names.options = "";
-  keymap->xkb_keymap = xkb_keymap_new_from_names (context, &names, 0);
-  keymap->xkb_state = xkb_state_new (keymap->xkb_keymap);
-  xkb_context_unref (context);
-
-  return GDK_KEYMAP (keymap);
-}
-
 static void
 update_direction (GdkWaylandKeymap *keymap)
 {
@@ -317,6 +294,31 @@ update_direction (GdkWaylandKeymap *keymap)
   g_free (rtl);
 }
 
+GdkKeymap *
+_gdk_wayland_keymap_new ()
+{
+  GdkWaylandKeymap *keymap;
+  struct xkb_context *context;
+  struct xkb_rule_names names;
+
+  keymap = g_object_new (_gdk_wayland_keymap_get_type(), NULL);
+
+  context = xkb_context_new (0);
+
+  names.rules = "evdev";
+  names.model = "pc105";
+  names.layout = "us";
+  names.variant = "";
+  names.options = "";
+  keymap->xkb_keymap = xkb_keymap_new_from_names (context, &names, 0);
+  keymap->xkb_state = xkb_state_new (keymap->xkb_keymap);
+  xkb_context_unref (context);
+
+  update_direction (keymap);
+
+  return GDK_KEYMAP (keymap);
+}
+
 void
 _gdk_wayland_keymap_update_from_fd (GdkKeymap *keymap,
                                     uint32_t   format,